home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Doc / Forms.int < prev    next >
Encoding:
Text File  |  2001-05-22  |  27.9 KB  |  837 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {  Copyright (c) 1995-2001 Borland Software Corporation }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit Forms;
  11.  
  12. {$P+,S-,W-,R-,T-,H+,X+}
  13. {$C PRELOAD}
  14. {$WARN SYMBOL_PLATFORM OFF}
  15.  
  16. interface
  17.  
  18. uses Messages, Windows, SysUtils, Classes, Graphics, Menus, Controls, Imm,
  19.   ActnList, MultiMon, HelpIntfs;
  20.  
  21. type
  22.  
  23. { Forward declarations }
  24.  
  25.   TScrollingWinControl = class;
  26.   TCustomForm = class;
  27.   TForm = class;
  28.   TMonitor = class;
  29.  
  30. { TControlScrollBar }
  31.  
  32.   TScrollBarKind = (sbHorizontal, sbVertical);
  33.   TScrollBarInc = 1..32767;
  34.   TScrollBarStyle = (ssRegular, ssFlat, ssHotTrack);
  35.  
  36.   TControlScrollBar = class(TPersistent)
  37.   public
  38.     procedure Assign(Source: TPersistent); override;
  39.     procedure ChangeBiDiPosition;
  40.     property Kind: TScrollBarKind;
  41.     function IsScrollBarVisible: Boolean;
  42.     property ScrollPos: Integer;
  43.   published
  44.     property ButtonSize: Integer default 0;
  45.     property Color: TColor default clBtnHighlight;
  46.     property Increment: TScrollBarInc default 8;
  47.     property Margin: Word default 0;
  48.     property ParentColor: Boolean default True;
  49.     property Position: Integer default 0;
  50.     property Range: Integer default 0;
  51.     property Smooth: Boolean default False;
  52.     property Size: Integer default 0;
  53.     property Style: TScrollBarStyle default ssRegular;
  54.     property ThumbSize: Integer default 0;
  55.     property Tracking: Boolean default False;
  56.     property Visible: Boolean default True;
  57.   end;
  58.  
  59. { TScrollingWinControl }
  60.  
  61.   TWindowState = (wsNormal, wsMinimized, wsMaximized);
  62.  
  63.   TScrollingWinControl = class(TWinControl)
  64.   protected
  65.     procedure AdjustClientRect(var Rect: TRect); override;
  66.     procedure AlignControls(AControl: TControl; var ARect: TRect); override;
  67.     function AutoScrollEnabled: Boolean; virtual;
  68.     procedure AutoScrollInView(AControl: TControl); virtual;
  69.     procedure ChangeScale(M, D: Integer); override;
  70.     procedure CreateParams(var Params: TCreateParams); override;
  71.     procedure CreateWnd; override;
  72.     procedure DoFlipChildren; override;
  73.     property AutoScroll: Boolean default True;
  74.     procedure Resizing(State: TWindowState); virtual;
  75.   public
  76.     constructor Create(AOwner: TComponent); override;
  77.     destructor Destroy; override;
  78.     procedure DisableAutoRange;
  79.     procedure EnableAutoRange;
  80.     procedure ScrollInView(AControl: TControl);
  81.   published
  82.     property HorzScrollBar: TControlScrollBar;
  83.     property VertScrollBar: TControlScrollBar;
  84.   end;
  85.  
  86. { TScrollBox }
  87.  
  88.   TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow,
  89.     bsSizeToolWin);
  90.   TBorderStyle = bsNone..bsSingle;
  91.  
  92.   TScrollBox = class(TScrollingWinControl)
  93.   protected
  94.     procedure CreateParams(var Params: TCreateParams); override;
  95.   public
  96.     constructor Create(AOwner: TComponent); override;
  97.   published
  98.     property Align;
  99.     property Anchors;
  100.     property AutoScroll;
  101.     property AutoSize;
  102.     property BevelEdges;
  103.     property BevelInner;
  104.     property BevelOuter;
  105.     property BevelKind;
  106.     property BevelWidth;
  107.     property BiDiMode;
  108.     property BorderStyle: TBorderStyle default bsSingle;
  109.     property Constraints;
  110.     property DockSite;
  111.     property DragCursor;
  112.     property DragKind;
  113.     property DragMode;
  114.     property Enabled;
  115.     property Color nodefault;
  116.     property Ctl3D;
  117.     property Font;
  118.     property ParentBiDiMode;
  119.     property ParentColor;
  120.     property ParentCtl3D;
  121.     property ParentFont;
  122.     property ParentShowHint;
  123.     property PopupMenu;
  124.     property ShowHint;
  125.     property TabOrder;
  126.     property TabStop;
  127.     property Visible;
  128.     property OnCanResize;
  129.     property OnClick;
  130.     property OnConstrainedResize;
  131.     property OnContextPopup;
  132.     property OnDblClick;
  133.     property OnDockDrop;
  134.     property OnDockOver;
  135.     property OnDragDrop;
  136.     property OnDragOver;
  137.     property OnEndDock;
  138.     property OnEndDrag;
  139.     property OnEnter;
  140.     property OnExit;
  141.     property OnGetSiteInfo;
  142.     property OnMouseDown;
  143.     property OnMouseMove;
  144.     property OnMouseUp;
  145.     property OnMouseWheel;
  146.     property OnMouseWheelDown;
  147.     property OnMouseWheelUp;
  148.     property OnResize;
  149.     property OnStartDock;
  150.     property OnStartDrag;
  151.     property OnUnDock;
  152.   end;
  153.  
  154. { TCustomFrame }
  155.  
  156.   TCustomFrame = class(TScrollingWinControl)
  157.   protected
  158.     procedure CreateParams(var Params: TCreateParams); override;
  159.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  160.     procedure Notification(AComponent: TComponent;
  161.       Operation: TOperation); override;
  162.     procedure SetParent(AParent: TWinControl); override;
  163.   public
  164.     constructor Create(AOwner: TComponent); override;
  165.   end;
  166.  
  167.   TCustomFrameClass = class of TCustomFrame;
  168.  
  169. { TFrame }
  170.  
  171.   TFrame = class(TCustomFrame)
  172.   published
  173.     property Align;
  174.     property Anchors;
  175.     property AutoScroll;
  176.     property AutoSize;
  177.     property BiDiMode;
  178.     property Constraints;
  179.     property DockSite;
  180.     property DragCursor;
  181.     property DragKind;
  182.     property DragMode;
  183.     property Enabled;
  184.     property Color nodefault;
  185.     property Ctl3D;
  186.     property Font;
  187.     property ParentBiDiMode;
  188.     property ParentColor;
  189.     property ParentCtl3D;
  190.     property ParentFont;
  191.     property ParentShowHint;
  192.     property PopupMenu;
  193.     property ShowHint;
  194.     property TabOrder;
  195.     property TabStop;
  196.     property Visible;
  197.     property OnCanResize;
  198.     property OnClick;
  199.     property OnConstrainedResize;
  200.     property OnContextPopup;
  201.     property OnDblClick;
  202.     property OnDockDrop;
  203.     property OnDockOver;
  204.     property OnDragDrop;
  205.     property OnDragOver;
  206.     property OnEndDock;
  207.     property OnEndDrag;
  208.     property OnEnter;
  209.     property OnExit;
  210.     property OnGetSiteInfo;
  211.     property OnMouseDown;
  212.     property OnMouseMove;
  213.     property OnMouseUp;
  214.     property OnMouseWheel;
  215.     property OnMouseWheelDown;
  216.     property OnMouseWheelUp;
  217.     property OnResize;
  218.     property OnStartDock;
  219.     property OnStartDrag;
  220.     property OnUnDock;
  221.   end;
  222.  
  223. { IDesignerHook }
  224.  
  225.   IDesignerHook = interface(IDesignerNotify)
  226.     ['{1E431DA5-2BEA-4DE7-A330-CC45FD2FB1EC}']                        
  227.     function GetCustomForm: TCustomForm;
  228.     procedure SetCustomForm(Value: TCustomForm);
  229.     function GetIsControl: Boolean;
  230.     procedure SetIsControl(Value: Boolean);
  231.     function IsDesignMsg(Sender: TControl; var Message: TMessage): Boolean;
  232.     procedure PaintGrid;
  233.     procedure ValidateRename(AComponent: TComponent;
  234.       const CurName, NewName: string);
  235.     function UniqueName(const BaseName: string): string;
  236.     function GetRoot: TComponent;
  237.     property IsControl: Boolean;
  238.     property Form: TCustomForm;
  239.   end;
  240.  
  241. { IOleForm }
  242.  
  243.   IOleForm = interface
  244.     ['{CD02E1C1-52DA-11D0-9EA6-0020AF3D82DA}']
  245.     procedure OnDestroy;
  246.     procedure OnResize;
  247.   end;
  248.  
  249. { TCustomForm }
  250.  
  251.   TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);
  252.   TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);
  253.   TBorderIcons = set of TBorderIcon;
  254.   TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,
  255.     poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);
  256.   TDefaultMonitor = (dmDesktop, dmPrimary, dmMainForm, dmActiveForm);
  257.   TPrintScale = (poNone, poProportional, poPrintToFit);
  258.   TShowAction = (saIgnore, saRestore, saMinimize, saMaximize);
  259.   TTileMode = (tbHorizontal, tbVertical);
  260.   TCloseAction = (caNone, caHide, caFree, caMinimize);
  261.   TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object;
  262.   TCloseQueryEvent = procedure(Sender: TObject;
  263.     var CanClose: Boolean) of object;
  264.   TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal,
  265.     fsCreatedMDIChild, fsActivated);
  266.   TShortCutEvent = procedure (var Msg: TWMKey; var Handled: Boolean) of object;
  267.   THelpEvent = function(Command: Word; Data: Longint; 
  268.     var CallHelp: Boolean): Boolean of object;
  269.  
  270.   TCustomForm = class(TScrollingWinControl)
  271.   protected
  272.     FActionLists: TList;
  273.     FFormState: TFormState;
  274.     procedure Activate; dynamic;
  275.     procedure ActiveChanged; dynamic;
  276.     procedure AlignControls(AControl: TControl; var Rect: TRect); override;
  277.     procedure BeginAutoDrag; override;
  278.     procedure ChangeScale(M, D: Integer); override;
  279.     procedure CreateParams(var Params: TCreateParams); override;
  280.     procedure CreateWindowHandle(const Params: TCreateParams); override;
  281.     procedure CreateWnd; override;
  282.     procedure Deactivate; dynamic;
  283.     procedure DefineProperties(Filer: TFiler); override;
  284.     procedure DestroyWindowHandle; override;
  285.     procedure DoClose(var Action: TCloseAction); dynamic;
  286.     procedure DoCreate; virtual;
  287.     procedure DoDestroy; virtual;
  288.     procedure DoHide; dynamic;
  289.     procedure DoShow; dynamic;
  290.     function GetClientRect: TRect; override;
  291.     procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
  292.     function GetFloating: Boolean; override;
  293.     function HandleCreateException: Boolean; dynamic;
  294.     procedure Loaded; override;
  295.     procedure Notification(AComponent: TComponent;
  296.       Operation: TOperation); override;
  297.     procedure Paint; dynamic;
  298.     procedure PaintWindow(DC: HDC); override;
  299.     function PaletteChanged(Foreground: Boolean): Boolean; override;
  300.     function QueryInterface(const IID: TGUID; out Obj): HResult; override;
  301.     procedure ReadState(Reader: TReader); override;
  302.     procedure RequestAlign; override;
  303.     procedure SetChildOrder(Child: TComponent; Order: Integer); override;
  304.     procedure SetParentBiDiMode(Value: Boolean); override;
  305.     procedure DoDock(NewDockSite: TWinControl; var ARect: TRect); override;
  306.     procedure SetParent(AParent: TWinControl); override;
  307.     procedure UpdateActions; virtual;
  308.     procedure UpdateWindowState;
  309.     procedure ValidateRename(AComponent: TComponent;
  310.       const CurName, NewName: string); override;
  311.     procedure VisibleChanging; override;
  312.     procedure WndProc(var Message: TMessage); override;
  313.     procedure Resizing(State: TWindowState); override;
  314.     property ActiveMDIChild: TForm;
  315.     property AlphaBlend: Boolean;
  316.     property AlphaBlendValue: Byte;
  317.     property BorderIcons: TBorderIcons default [biSystemMenu, biMinimize, biMaximize];
  318.     property AutoScroll stored IsAutoScrollStored;
  319.     property ClientHandle: HWND;
  320.     property ClientHeight write SetClientHeight stored IsClientSizeStored;
  321.     property ClientWidth write SetClientWidth stored IsClientSizeStored;
  322.     property TransparentColor: Boolean;
  323.     property TransparentColorValue: TColor;
  324.     property Ctl3D default True;
  325.     property DefaultMonitor: TDefaultMonitor default dmActiveForm;
  326.     property FormStyle: TFormStyle default fsNormal;
  327.     property Height stored IsFormSizeStored;
  328.     property HorzScrollBar stored IsForm;
  329.     property Icon: TIcon;
  330.     property MDIChildCount: Integer;
  331.     property MDIChildren[I: Integer]: TForm;
  332.     property OldCreateOrder: Boolean;
  333.     property ObjectMenuItem: TMenuItem;
  334.     property PixelsPerInch: Integer;
  335.     property ParentFont default False;
  336.     property PopupMenu stored IsForm;
  337.     property Position: TPosition default poDesigned;
  338.     property PrintScale: TPrintScale default poProportional;
  339.     property Scaled: Boolean default True;
  340.     property TileMode: TTileMode default tbHorizontal;
  341.     property VertScrollBar stored IsForm;
  342.     property Visible write SetVisible default False;
  343.     property Width stored IsFormSizeStored;
  344.     property WindowMenu: TMenuItem;
  345.     property OnActivate: TNotifyEvent;
  346.     property OnCanResize stored IsForm;
  347.     property OnClick stored IsForm;
  348.     property OnClose: TCloseEvent;
  349.     property OnCloseQuery: TCloseQueryEvent;
  350.     property OnCreate: TNotifyEvent;
  351.     property OnDblClick stored IsForm;
  352.     property OnDestroy: TNotifyEvent;
  353.     property OnDeactivate: TNotifyEvent;
  354.     property OnDragDrop stored IsForm;
  355.     property OnDragOver stored IsForm;
  356.     property OnHelp: THelpEvent;
  357.     property OnHide: TNotifyEvent;
  358.     property OnKeyDown stored IsForm;
  359.     property OnKeyPress stored IsForm;
  360.     property OnKeyUp stored IsForm;
  361.     property OnMouseDown stored IsForm;
  362.     property OnMouseMove stored IsForm;
  363.     property OnMouseUp stored IsForm;
  364.     property OnPaint: TNotifyEvent;
  365.     property OnResize stored IsForm;
  366.     property OnShortCut: TShortCutEvent;
  367.     property OnShow: TNotifyEvent;
  368.   public
  369.     constructor Create(AOwner: TComponent); override;
  370.     constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;
  371.     destructor Destroy; override;
  372.     procedure AfterConstruction; override;
  373.     procedure BeforeDestruction; override;
  374.     procedure Close;
  375.     function CloseQuery: Boolean; virtual;
  376.     procedure DefaultHandler(var Message); override;
  377.     procedure DefocusControl(Control: TWinControl; Removing: Boolean);
  378.     procedure Dock(NewDockSite: TWinControl; ARect: TRect); override;
  379.     procedure FocusControl(Control: TWinControl);
  380.     function GetFormImage: TBitmap;
  381.     procedure Hide;
  382.     function IsShortCut(var Message: TWMKey): Boolean; dynamic;
  383.     procedure MakeFullyVisible(AMonitor: TMonitor = nil);
  384.     procedure MouseWheelHandler(var Message: TMessage); override;
  385.     procedure Print;
  386.     procedure Release;
  387.     procedure SendCancelMode(Sender: TControl);
  388.     procedure SetFocus; override;
  389.     function SetFocusedControl(Control: TWinControl): Boolean; virtual;
  390.     procedure Show;
  391.     function ShowModal: Integer; virtual;
  392.     function WantChildKey(Child: TControl; var Message: TMessage): Boolean; virtual;
  393.     property Active: Boolean;
  394.     property ActiveControl: TWinControl;
  395.     property Action;
  396.     property ActiveOleControl: TWinControl;
  397.     property BorderStyle: TFormBorderStyle default bsSizeable;
  398.     property Canvas: TCanvas;
  399.     property Caption stored IsForm;
  400.     property Color nodefault;
  401.     property Designer: IDesignerHook;
  402.     property DropTarget: Boolean;
  403.     property Font;
  404.     property FormState: TFormState;
  405.     property HelpFile: string;
  406.     property KeyPreview: Boolean default False;
  407.     property Menu: TMainMenu;
  408.     property ModalResult: TModalResult;
  409.     property Monitor: TMonitor;
  410.     property OleFormObject: IOleForm;
  411.     property WindowState: TWindowState default wsNormal;
  412.   end;
  413.  
  414.   TCustomFormClass = class of TCustomForm;
  415.  
  416.   { TCustomActiveForm }
  417.  
  418.   TActiveFormBorderStyle = (afbNone, afbSingle, afbSunken, afbRaised);
  419.  
  420.   TCustomActiveForm = class(TCustomForm)
  421.   protected
  422.     procedure CreateParams(var Params: TCreateParams); override;
  423.   public
  424.     constructor Create(AOwner: TComponent); override;
  425.     function WantChildKey(Child: TControl; var Message: TMessage): Boolean; override;
  426.     property Visible;
  427.   published
  428.     property ActiveControl;
  429.     property Anchors;
  430.     property AutoScroll;
  431.     property AutoSize;
  432.     property AxBorderStyle: TActiveFormBorderStyle default afbSingle;
  433.     property BorderWidth;
  434.     property Caption stored True;
  435.     property Color;
  436.     property Constraints;
  437.     property Font;
  438.     property Height stored True;
  439.     property HorzScrollBar;
  440.     property KeyPreview;
  441.     property OldCreateOrder;
  442.     property PixelsPerInch;
  443.     property PopupMenu;
  444.     property PrintScale;
  445.     property Scaled;
  446.     property ShowHint;
  447.     property VertScrollBar;
  448.     property Width stored True;
  449.     property OnActivate;
  450.     property OnClick;
  451.     property OnCreate;
  452.     property OnContextPopup;
  453.     property OnDblClick;
  454.     property OnDestroy;
  455.     property OnDeactivate;
  456.     property OnDragDrop;
  457.     property OnDragOver;
  458.     property OnKeyDown;
  459.     property OnKeyPress;
  460.     property OnKeyUp;
  461.     property OnMouseDown;
  462.     property OnMouseMove;
  463.     property OnMouseUp;
  464.     property OnPaint;
  465.   end;
  466.  
  467. { TForm }
  468.  
  469.   TForm = class(TCustomForm)
  470.   public
  471.     procedure ArrangeIcons;
  472.     procedure Cascade;
  473.     procedure Next;
  474.     procedure Previous;
  475.     procedure Tile;
  476.     property ActiveMDIChild;
  477.     property ClientHandle;
  478.     property DockManager;
  479.     property MDIChildCount;
  480.     property MDIChildren;
  481.     property TileMode;
  482.   published
  483.     property Action;
  484.     property ActiveControl;
  485.     property Align;
  486.     property AlphaBlend default False;
  487.     property AlphaBlendValue default 255;
  488.     property Anchors;
  489.     property AutoScroll;
  490.     property AutoSize;
  491.     property BiDiMode;
  492.     property BorderIcons;
  493.     property BorderStyle;
  494.     property BorderWidth;
  495.     property Caption;
  496.     property ClientHeight;
  497.     property ClientWidth;
  498.     property Color;
  499.     property TransparentColor default False;
  500.     property TransparentColorValue default 0;
  501.     property Constraints;
  502.     property Ctl3D;
  503.     property UseDockManager;
  504.     property DefaultMonitor;
  505.     property DockSite;
  506.     property DragKind;
  507.     property DragMode;
  508.     property Enabled;
  509.     property ParentFont default False;
  510.     property Font;
  511.     property FormStyle;
  512.     property Height;
  513.     property HelpFile;
  514.     property HorzScrollBar;
  515.     property Icon;
  516.     property KeyPreview;
  517.     property Menu;
  518.     property OldCreateOrder;
  519.     property ObjectMenuItem;
  520.     property ParentBiDiMode;
  521.     property PixelsPerInch;
  522.     property PopupMenu;
  523.     property Position;
  524.     property PrintScale;
  525.     property Scaled;
  526.     property ShowHint;
  527.     property VertScrollBar;
  528.     property Visible;
  529.     property Width;
  530.     property WindowState;
  531.     property WindowMenu;
  532.     property OnActivate;
  533.     property OnCanResize;
  534.     property OnClick;
  535.     property OnClose;
  536.     property OnCloseQuery;
  537.     property OnConstrainedResize;
  538.     property OnContextPopup;
  539.     property OnCreate;
  540.     property OnDblClick;
  541.     property OnDestroy;
  542.     property OnDeactivate;
  543.     property OnDockDrop;
  544.     property OnDockOver;
  545.     property OnDragDrop;
  546.     property OnDragOver;
  547.     property OnEndDock;
  548.     property OnGetSiteInfo;
  549.     property OnHide;
  550.     property OnHelp;
  551.     property OnKeyDown;
  552.     property OnKeyPress;
  553.     property OnKeyUp;
  554.     property OnMouseDown;
  555.     property OnMouseMove;
  556.     property OnMouseUp;
  557.     property OnMouseWheel;
  558.     property OnMouseWheelDown;
  559.     property OnMouseWheelUp;
  560.     property OnPaint;
  561.     property OnResize;
  562.     property OnShortCut;
  563.     property OnShow;
  564.     property OnStartDock;
  565.     property OnUnDock;
  566.   end;
  567.  
  568.   TFormClass = class of TForm;
  569.  
  570. { TCustomDockForm }
  571.  
  572.   TCustomDockForm = class(TCustomForm)
  573.   protected
  574.     procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
  575.     procedure DoRemoveDockClient(Client: TControl); override;
  576.     procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
  577.       MousePos: TPoint; var CanDock: Boolean); override;
  578.     procedure Loaded; override;
  579.   public
  580.     constructor Create(AOwner: TComponent); override;
  581.     property AutoScroll default False;
  582.     property BorderStyle default bsSizeToolWin;
  583.     property FormStyle default fsStayOnTop;
  584.   published
  585.     property PixelsPerInch;
  586.   end;
  587.  
  588. { TMonitor }
  589.  
  590.   TMonitor = class(TObject)
  591.   public
  592.     property Handle: HMONITOR;
  593.     property MonitorNum: Integer;
  594.     property Left: Integer;
  595.     property Height: Integer;
  596.     property Top: Integer;
  597.     property Width: Integer;
  598.     property BoundsRect: TRect;
  599.     property WorkareaRect: TRect;
  600.     property Primary: Boolean;
  601.   end;
  602.  
  603. { TScreen }
  604.  
  605.   PCursorRec = ^TCursorRec;
  606.   TCursorRec = record
  607.     Next: PCursorRec;
  608.     Index: Integer;
  609.     Handle: HCURSOR;
  610.   end;
  611.  
  612.   TMonitorDefaultTo = (mdNearest, mdNull, mdPrimary);
  613.  
  614.   TScreen = class(TComponent)
  615.   public
  616.     constructor Create(AOwner: TComponent); override;
  617.     destructor Destroy; override;
  618.     procedure DisableAlign;
  619.     procedure EnableAlign;
  620.     function MonitorFromPoint(const Point: TPoint;
  621.       MonitorDefault: TMonitorDefaultTo = mdNearest): TMonitor;
  622.     function MonitorFromRect(const Rect: TRect;
  623.       MonitorDefault: TMonitorDefaultTo = mdNearest): TMonitor;
  624.     function MonitorFromWindow(const Handle: THandle;
  625.       MonitorDefault: TMonitorDefaultTo = mdNearest): TMonitor;
  626.     procedure Realign;
  627.     procedure ResetFonts;
  628.     property ActiveControl: TWinControl;
  629.     property ActiveCustomForm: TCustomForm;
  630.     property ActiveForm: TForm;
  631.     property CustomFormCount: Integer;
  632.     property CustomForms[Index: Integer]: TCustomForm;
  633.     property Cursor: TCursor;
  634.     property Cursors[Index: Integer]: HCURSOR;
  635.     property DataModules[Index: Integer]: TDataModule;
  636.     property DataModuleCount: Integer;
  637.     property MonitorCount: Integer;
  638.     property Monitors[Index: Integer]: TMonitor;
  639.     property DesktopRect: TRect;
  640.     property DesktopHeight: Integer;
  641.     property DesktopLeft: Integer;
  642.     property DesktopTop: Integer;
  643.     property DesktopWidth: Integer;
  644.     property WorkAreaRect: TRect;
  645.     property WorkAreaHeight: Integer;
  646.     property WorkAreaLeft: Integer;
  647.     property WorkAreaTop: Integer;
  648.     property WorkAreaWidth: Integer;
  649.     property HintFont: TFont;
  650.     property IconFont: TFont;
  651.     property MenuFont: TFont;
  652.     property Fonts: TStrings;
  653.     property FormCount: Integer;
  654.     property Forms[Index: Integer]: TForm;
  655.     property Imes: TStrings;
  656.     property DefaultIme: string;
  657.     property DefaultKbLayout: HKL;
  658.     property Height: Integer;
  659.     property PixelsPerInch: Integer;
  660.     property Width: Integer;
  661.     property OnActiveControlChange: TNotifyEvent;
  662.     property OnActiveFormChange: TNotifyEvent;
  663.   end;
  664.  
  665. { TApplication }
  666.  
  667.   TTimerMode = (tmShow, tmHide);
  668.  
  669.   PHintInfo = ^THintInfo;
  670.   THintInfo = record
  671.     HintControl: TControl;
  672.     HintWindowClass: THintWindowClass;
  673.     HintPos: TPoint;
  674.     HintMaxWidth: Integer;
  675.     HintColor: TColor;
  676.     CursorRect: TRect;
  677.     CursorPos: TPoint;
  678.     ReshowTimeout: Integer;
  679.     HideTimeout: Integer;
  680.     HintStr: string;
  681.     HintData: Pointer;
  682.   end;
  683.  
  684.   TCMHintShow = record
  685.     Msg: Cardinal;
  686.     Reserved: Integer;
  687.     HintInfo: PHintInfo;
  688.     Result: Integer;
  689.   end;
  690.  
  691.   TCMHintShowPause = record
  692.     Msg: Cardinal;
  693.     WasActive: Integer;
  694.     Pause: PInteger;
  695.     Result: Integer;
  696.   end;
  697.  
  698.   TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object;
  699.   TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;
  700.   TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;
  701.   TShowHintEvent = procedure (var HintStr: string; var CanShow: Boolean;
  702.     var HintInfo: THintInfo) of object;
  703.   TWindowHook = function (var Message: TMessage): Boolean of object;
  704.   TSettingChangeEvent = procedure (Sender: TObject; Flag: Integer; const Section: string; var Result: Longint) of object;
  705.  
  706.   TApplication = class(TComponent)
  707.   protected
  708.     procedure Idle(const Msg: TMsg);
  709.     function IsDlgMsg(var Msg: TMsg): Boolean;
  710.     function IsHintMsg(var Msg: TMsg): Boolean;
  711.     function IsKeyMsg(var Msg: TMsg): Boolean;
  712.     function IsMDIMsg(var Msg: TMsg): Boolean;
  713.     function IsShortCut(var Message: TWMKey): Boolean;
  714.   public
  715.     constructor Create(AOwner: TComponent); override;
  716.     destructor Destroy; override;
  717.     procedure ActivateHint(CursorPos: TPoint);
  718.     procedure BringToFront;
  719.     procedure ControlDestroyed(Control: TControl);
  720.     procedure CancelHint;
  721.     procedure CreateForm(InstanceClass: TComponentClass; var Reference);
  722.     procedure CreateHandle;
  723.     function ExecuteAction(Action: TBasicAction): Boolean; reintroduce;
  724.     procedure HandleException(Sender: TObject);
  725.     procedure HandleMessage;
  726.     function HelpCommand(Command: Integer; Data: Longint): Boolean; 
  727.     function HelpContext(Context: THelpContext): Boolean; 
  728.     function HelpJump(const JumpID: string): Boolean;
  729.     function HelpKeyword(const Keyword: String): Boolean;
  730.     procedure HideHint;
  731.     procedure HintMouseMessage(Control: TControl; var Message: TMessage);
  732.     procedure HookMainWindow(Hook: TWindowHook);
  733.     procedure HookSynchronizeWakeup;
  734.     procedure Initialize;
  735.     function IsRightToLeft: Boolean;
  736.     function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;
  737.     procedure Minimize;
  738.     procedure NormalizeAllTopMosts;
  739.     procedure NormalizeTopMosts;
  740.     procedure ProcessMessages;
  741.     procedure Restore;
  742.     procedure RestoreTopMosts;
  743.     procedure Run;
  744.     procedure ShowException(E: Exception);
  745.     procedure Terminate;
  746.     procedure UnhookMainWindow(Hook: TWindowHook);
  747.     procedure UnhookSynchronizeWakeup;
  748.     function UpdateAction(Action: TBasicAction): Boolean; reintroduce;
  749.     function UseRightToLeftAlignment: Boolean;
  750.     function UseRightToLeftReading: Boolean;
  751.     function UseRightToLeftScrollBar: Boolean;
  752.     property Active: Boolean;
  753.     property AllowTesting: Boolean;
  754.     property AutoDragDocking: Boolean default True;
  755.     property HelpSystem : IHelpSystem;
  756.     property CurrentHelpFile: string;
  757.     property DialogHandle: HWnd;
  758.     property ExeName: string;
  759.     property Handle: HWnd;
  760.     property HelpFile: string;
  761.     property Hint: string;
  762.     property HintColor: TColor;
  763.     property HintHidePause: Integer;
  764.     property HintPause: Integer;
  765.     property HintShortCuts: Boolean;
  766.     property HintShortPause: Integer;
  767.     property Icon: TIcon;
  768.     property MainForm: TForm;
  769.     property BiDiMode: TBiDiMode default bdLeftToRight;
  770.     property BiDiKeyboard: string;
  771.     property NonBiDiKeyboard: string;
  772.     property ShowHint: Boolean;
  773.     property ShowMainForm: Boolean;
  774.     property Terminated: Boolean;
  775.     property Title: string;
  776.     property UpdateFormatSettings: Boolean;
  777.     property UpdateMetricSettings: Boolean;
  778.     property OnActionExecute: TActionEvent;
  779.     property OnActionUpdate: TActionEvent;
  780.     property OnActivate: TNotifyEvent;
  781.     property OnDeactivate: TNotifyEvent;
  782.     property OnException: TExceptionEvent;
  783.     property OnIdle: TIdleEvent;
  784.     property OnHelp: THelpEvent;
  785.     property OnHint: TNotifyEvent;
  786.     property OnMessage: TMessageEvent;
  787.     property OnMinimize: TNotifyEvent;
  788.     property OnRestore: TNotifyEvent;
  789.     property OnShowHint: TShowHintEvent;
  790.     property OnShortCut: TShortCutEvent;
  791.     property OnSettingChange: TSettingChangeEvent;
  792.   end;
  793.  
  794. { Global objects }
  795.  
  796. var
  797.   Application: TApplication;
  798.   Screen: TScreen;
  799.   Ctl3DBtnWndProc: Pointer = nil;  { obsolete }
  800.   Ctl3DDlgFramePaint: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil; { obsolete }
  801.   Ctl3DCtlColorEx: function(Window: HWnd; Msg, wParam, lParam: Longint): Longint stdcall = nil; { obsolete }
  802.   HintWindowClass: THintWindowClass = THintWindow;
  803.  
  804. function GetParentForm(Control: TControl): TCustomForm;
  805. function ValidParentForm(Control: TControl): TCustomForm;
  806.  
  807. function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
  808. procedure EnableTaskWindows(WindowList: Pointer);
  809.  
  810. function MakeObjectInstance(Method: TWndMethod): Pointer; deprecated; { moved to Classes.pas }
  811. procedure FreeObjectInstance(ObjectInstance: Pointer);    deprecated; { moved to Classes.pas }
  812.  
  813. function IsAccel(VK: Word; const Str: string): Boolean;
  814.  
  815. function  Subclass3DWnd(Wnd: HWnd): Boolean;     deprecated;  { obsolete }
  816. procedure Subclass3DDlg(Wnd: HWnd; Flags: Word); deprecated;  { obsolete }
  817. procedure SetAutoSubClass(Enable: Boolean);      deprecated;  { obsolete }
  818. function AllocateHWnd(Method: TWndMethod): HWND; deprecated;  { moved to Classes.pas }
  819. procedure DeallocateHWnd(Wnd: HWND);             deprecated;  { moved to Classes.pas }
  820. procedure DoneCtl3D;                             deprecated;  { obsolete }
  821. procedure InitCtl3D;                             deprecated;  { obsolete }
  822.  
  823. function KeysToShiftState(Keys: Word): TShiftState;
  824. function KeyDataToShiftState(KeyData: Longint): TShiftState;
  825. function KeyboardStateToShiftState(const KeyboardState: TKeyboardState): TShiftState; overload;
  826. function KeyboardStateToShiftState: TShiftState; overload;
  827.  
  828. function ForegroundTask: Boolean;
  829.  
  830. type
  831.   TFocusState = type Pointer;
  832.  
  833. function SaveFocusState: TFocusState;
  834. procedure RestoreFocusState(FocusState: TFocusState);
  835.  
  836. implementation
  837.